On Thu, May 2, 2013 at 10:19 PM, Matěj Laitl <ma...@laitl.cz> wrote:
> 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! > Thanks a lot matej! :-) Good luck to you as well > Matěj Laitl > Abhinandan
_______________________________________________ Amarok-devel mailing list Amarok-devel@kde.org https://mail.kde.org/mailman/listinfo/amarok-devel