On 1. 5. 2013 Abhinandan Ramprasath wrote: > Motivation for project: > > Audiobooks are usually quite lengthy and go on for hours. It is not always > possible for people to finish listening to audiobooks in one go. Chapter > support is pretty important for users to skip through chapters. I would > find it irritating if I have to seek through to the location I want to be > on every time. Since, Amarok already provides a bookmark to the location > where the user left off, addition of chapter markers would make navigating > an audiobook as easy as a book. > > CUE sheeted music, on the other hand, is very popular, and not providing > proper support ruins the music experience people would have. It is also > been a requested feature for quite a long time (5). Many bugs have been > reported (6) complaining about Amarok’s lack of support for CUE sheeted > music. Implementation of support has been pushed over releases (from 2.6 to > 2.8) and I think that this should end with the google summer of code.
Nice. (although it doesn't mention there's already a very limited support for cue sheets) > Goals: > 1) Implement Qtchapter support in TagLib Again, I'd explicitly spell "quicktime". > 4) (Optional) Implement embedded CUE sheet support What it this? What formats have embedded CUE sheets? > Implementation Details: > > The project involves making changes in both TagLib and Amarok repositories. > I would like to divide the project into 3 parts. > > The first one being implementing the QtChapter (QuickTime) support in > MP4/M4A/M4B files. As per the apple docs(1), the Qt chapter support can be > achieved by reading the “trak” atom which contains the “chap” data. This > trak atom contains the text track which contains the chapter information. > The indicated text track should contain a “stbl” atom ( basically a table ) > which would contain offsets to the location in the file that contain > chapter title in the file. Reading data at these offsets give information > about chapter titles. The time at which each each chapter marker occurs can > be easily calculated using the “bitrate” of the audiofile. These would be > the changes that I would make in TagLib to support QtChapters. The changes > in Amarok include, displaying the chapter markers to the user in the form > of bookmarks or Multi-Tracks.I plan on reading the chapter information in > Amarok the same way I implemented it in the bug fix (2). For actually > showing them on Amarok I’ll use the BookmarkGroupPtr to create a new > bookmark group and add chapter pointers to it in the form of URLs. I would > like to also store the chapter information in the database as well. > > The second part of the project would be to implement complete CUE sheet > support. > > What a CUE sheet is? > > CUE sheet contains information related to the album and the main filename > and the time offsets at which each track occurs. > > What needs to be done? > > I propose to make this change in the KUrl. Parts of the Url would have data > about the Base File, Time-Offset and Duration of the track (after a “?” or > “#” at the end, if not possible a new protocol?). Then these URL’s would be > interpreted in the UmsCollection or SqlCollection classes as separate Track > files. This would also enable storing the details of each song in the > database, hence there is no need to access the CUE file every time. > > Amarok already has a basic CUE sheet support, it can read CUE sheets added > manually through the browser or from a cd. I would like to integrate this > with the CollectionScanner perfectly( the way it is supposed to work, > highlighted by popular bug: (4) ). The scanner will automatically recognize > these CUE files and record them as separate tracks in the database as > mentioned above. I would like to store any changed metadata of a specific > file in the KUrl. If time permits, I plan on implementing embedded CUE > sheet support in Amarok. > > The third and last part of the project would be to implement support for > the NeroChapter type in MP4. Since, this is not so popular, I would like to > keep this my last part of the project. This involves more changes in TagLib > than Amarok. The chapter track information is found under the “udta” atom. > This part of the project would be to automatically detect the type of > chapter present in the given file and decode the chapter data and provide > it neatly. There are more considerations - perhaps how CollectionScanner would need to be updated, how to handle metadata editing, how to handle copying cuesheeted tracks out of Local Collection etc. But I see you already mention these under Timeline. > About Me: > > I am a Student of SSN College of Engineering. I prefer coding in > C/C++/Python. I was introduced to Amarok when my friend suggested it after > looking at my android app Lyricize (3). Since then I have fallen in love > with it. I would love to make any contribution that makes music more > enjoyable. I am also an enthusiastic web and android developer. I am a very > big FLOSS fan. I have written scripts that predict and scrape the indian > stock market data and avails it to developers as an API as well as > contributions to Haiku OS. > > Introduced to C and C++ by my mother at the age of 8, Hehe :-) > I have continued to > work on various projects during school and college to sharpen my skills. I > have learnt to code in languages such as java,php,ruby,node(javascript), > etc. I have won hackathons conducted by KRDS, Mozilla. Also, A finalist at > the Yahoo open hack 2012. I try to contribute to open source as much as I > can ( github: https://github.com/abhiin1947/ ). > > Am I comfortable working independently under a mentor or supervisor? > > Yes. I have been an intern for the ULaw Software Foundation based in Canada > and time zones aren’t really a problem at all. > > After GSoC: > > After GSoC I plan on continuing to fix bugs and code more features for > Amarok and taglib. I intend to learn about more file formats and improving > support in those areas. > > My experience with Amarok: > > I started out my Amarok journey by trying to solve bug 240409 ( which turns > out to be a big part of my proposal ). It was initially marked as a junior > job. I tried to implement chapter detection using library mp4v2 ( patch: > https://git.reviewboard.kde.org/r/109079/ ) which was eventually rejected. > After research and learning, I implemented support for chapter detection in > Amarok by using mp4atom.h from taglib explicitly ( patch: > https://git.reviewboard.kde.org/r/109256/ ). Since then, Unfortunately, > exams started and I couldn’t find the time to work more on it. > > My Bug fixes include https://git.reviewboard.kde.org/r/110243/ , > https://git.reviewboard.kde.org/r/110150/ . Both of them are relatively new > and pending. Your About Me section very nice as a whole. Good luck! Matěj Laitl _______________________________________________ Amarok-devel mailing list Amarok-devel@kde.org https://mail.kde.org/mailman/listinfo/amarok-devel