GSoC proposal review

Abhinandan Ramprasath abhiin1947 at gmail.com
Fri May 3 10:33:40 UTC 2013


On Thu, May 2, 2013 at 10:19 PM, Matěj Laitl <matej at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/amarok-devel/attachments/20130503/b45157af/attachment-0001.html>


More information about the Amarok-devel mailing list