<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Oct 30, 2014 at 3:41 AM, Nitul Datt <span dir="ltr"><<a href="mailto:nitul1991@gmail.com" target="_blank">nitul1991@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hey!<br>
<span class=""><br>
On 10/29/14, vedant agarwala <<a href="mailto:vedant.kota@gmail.com">vedant.kota@gmail.com</a>> wrote:<br>
> Then do that.<br>
><br>
> When you post a draft proposal on the mailing list post the entire text as<br>
> plain text rather than a link to a doc. Easier to read and comment in line.<br>
<br>
</span>This is a draft of my proposal to implement cue sheet support in<br>
Amarok. Suggestions are welcome, especially in the implementation and<br>
timeline sections.<br>
<br>
Introduction<br>
At present Amarok does not provide support for cue sheeted music in<br>
the collection. If implemented correctly, this feature would allow for<br>
the independent playback of individual songs stored in a single audio<br>
file.<br></blockquote><div>Nice! <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Project Goals<br>
Provide support for cue sheeted music in collections, solving a number<br>
of bugs in the process.<br></blockquote><div>List the bugs (maybe also with reference links) </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Implementation<br>
The amarokcollectionscanner utility must first search whether a given<br>
file has an associated cue sheet with the same name but .cue<br></blockquote><div>grammar: s/but/with </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
extension, failing which all cue files in the same directory must be<br>
checked for a matching FILE attribute.<br>
Individual tracks with all necessary metadata, must be created as per<br>
the directions in the cue sheeted file.<br></blockquote><div><br></div><div>You mean a TrackPtr object? Try and put some source code from Amarok code base. "created" how?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
To support the playback of a single track in such a file, I propose to<br>
use BoundedPlaybackCapability in the EngineController as each track in<br>
a cue sheeted file has a specific  start and end time within the file.<br>
A lot of existing code dealing with cue sheets may be reused, namely<br>
the CueFileSupport class.<br></blockquote><div><br></div><div>You really need to expand on implementation details. For inspiration have a look at some accepted GSoC proposals. (But do not spend much time on it)</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Timeline<br>
Nov 5th - Nov 15th<br>
I plan to go through the relevant parts of the codebase ie the<br>
collectionscanner, EngineController and also the existing cuesheet<br>
related classes.<br>
Nov 16th - Nov 22nd<br>
I plan to go through the implementation of cue sheet support in other<br>
qt based music players like qmmp and clementine.<br></blockquote><div><br></div><div>Do not plan to "go through" code for such a long time. You will end up going through a lot of code. Implement alongside "going through".</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Nov 23rd - Dec 1st<br>
I propose to make the necessary changes in the collectionscanner<br>
during this period.<br>
Dec 2nd - Dec 7th<br>
This period is meant as a buffer for any spillovers from the previous weeks.<br>
Dec 8th - Dec 15th<br>
I plan to implement the creation of tracks from the single cue sheet file.<br>
Dec 16th - Dec 26th<br>
During this period I shall be busy with my semester exams and will<br>
thus be confined to reviewing and testing my code.<br></blockquote><div>you dont review your own code </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Dec 27th - Jan 7th<br>
During this period, I plan to implement the necessary changes to<br>
ensure the correct playback of individual tracks in the file.<br>
Jan 8th - Jan 16th<br>
I plan to test my changes and make sure the entire implementation is correct.<br>
Jan 17th - Jan 31st<br>
I plan to use the last 2 weeks to make any modifications as suggested<br>
by the community and review and document my code.<br></blockquote><div><br></div><div>good timeline. </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<br>
I'm awaiting your response as I have to submit this by Oct 31, 12:00 am UTC.<br>
<div class="HOEnZb"><div class="h5"><br>
><br>
><br>
> Regards,<br>
> Vedant.<br>
><br>
<br>
--<br>
Regards,<br>
Nitul Datt<br>
</div></div></blockquote></div><br></div><div class="gmail_extra">Some more questions you (and me as well) need to answer:</div><div class="gmail_extra"><br></div><div class="gmail_extra">* How will the tracks be grouped in the Amarok playlist and collections.</div><div class="gmail_extra">* seems like you are implementing only for SQL collection (as collectionscanner runs only for it). -correct me if I am wrong. Is this okay?</div><div class="gmail_extra"><br></div><div class="gmail_extra">Regards,</div><div class="gmail_extra">Vedant.</div><div class="gmail_extra"><br></div></div>