<p>I&#39;ve added ideas 2 - 4 in the following list, thought I would email the list to make sure the ideas make sense to everyone. And perhaps inspire folks to <a href="http://techbase.kde.org/index.php?title=Projects/Summer_of_Code/2008/Ideas#Amarok">add their own ideas for Summer of Code</a>.</p>
<br>The student submissions are coming up fast - March 24-31 IIRC. So we need to get polish our ideas and then really get the word out. I was thinking perhaps we could have a form letter that everyone could send out to their local Linux User Groups or to other lists that have lots of computer science students.<br>
<br>Thanks,<br>Ian<br><br><p><b>Project:</b> Nepomuk collection
</p><p><b>Brief explanation:</b>
Amarok 2 has a plug-in system that allows it to access music metadata
from various backends. A plug-in to read and write data to and from
Nepomuk should be written in this project. Additionally, Amarok should
be extended to make real use of Nepomuk&#39;s capabilities by re-adding
labels support.
</p><p><b>Expected results:</b>
A plugin to use Nepomuk as a metadata store from Amarok. Additionally, support for labels should be added to Amarok 2.
</p><p><b>Knowledge Prerequisite:</b> C++ is essential, knowledge of Qt and KDE would be helpful
</p><p><b>Mentor:</b> Potentially one of several. Contact the amarok mailing list or ask in our IRC channel #amarok
</p>
<hr>
<p><b>Project:</b> UPnP Support
</p><p><b>Brief explanation:</b>Using the UPnP protocol users can, for
example, share music from their Vista computer to a PS3. Amarok lacks
any sort of UPnP support. Being able to act as a client (the PS3) or
possibly a UPnP media server (Vista) would be useful. See <a href="http://pupnp.sourceforge.net/" class="external text" title="http://pupnp.sourceforge.net/" rel="nofollow">libupnp</a>
for more information about UPnP&#39;s implementation in open source. The
nature of how UPnP works would need to be researched a bit more, as the
creator of this idea (Ian Monroe) has only seen it in use on friends
computers.&nbsp;:)
</p><p><b>Expected results:</b>
</p>
<ul><li>Using either Amarok&#39;s Internet Service framework or the
straight Amarok collection framework, create a plugin which allows
Amarok to browse and play music off of a UPnP share. Playing music may
require the creation of a KIO for UPnP.
</li><li>Allow Amarok to share it&#39;s collection with other devices via
UPnP. This is secondary priority and may not be feasible to accomplish
during Summer of Code.
</li></ul>
<p><b>Material Prerequisite:</b> Some UPnP devices or computers to test with.
</p><p><b>Knowledge Prerequisite:</b> C++ is essential, knowledge of Qt, KDE and networking would be helpful.
</p><p><b>Mentor:</b> Potentially one of several. Contact the amarok mailing list or ask in our IRC channel #amarok
</p>
<hr>
<p><b>Project:</b> Amarok Scripting
</p><p><b>Brief explanation:</b>Starting with Amarok 1.2, Amarok has
enabled scripting through a script manager and its DCOP interface. For
Amarok 2 we have a straight port of the old DCOP API to DBus. The old
API was created over time, and perhaps could be thought out better.
Additionally KDE 4 has introduced technology like Kross that could
allow true integration of scripts into Amarok, including GUIs.
In-process scripting has its own issues though!
</p><p><b>Expected results:</b>
</p>
<ul><li>This is a more open-ended idea. Contact the Amarok mailing list or on IRC to get help working out the proposal.
</li></ul>
<dl><dd><ul><li>Perhaps redesign the Amarok DBus API 
</li><li>..and/or add a Kross interface and then 
</li><li>Create a script showcasing the technology.
</li></ul>
</dd></dl>
<p><b>Knowledge Prerequisite:</b> C++ is essential, knowledge of Qt, KDE and Ruby would be helpful.
</p><p><b>Mentor:</b> Potentially one of several. Contact the amarok mailing list or ask in our IRC channel #amarok
</p>
<hr>
<p><b>Project:</b> CD Ripping
</p><p><b>Brief explanation:</b>Amarok has never really felt a need for
good CD ripping support. We always felt there were better programs
suited for this task. This hasn&#39;t stopped folks from finding ways to
use Amarok to rip their CDs though.&nbsp;;) </p><p><b>Expected results:</b>
</p>
<ul><li>An excellent CD ripping solution integrated into Amarok. 
</li><li>Cross-platform (Linux, Mac, Windows)
</li><li>This task is not too large, so there would be higher standards of polish.
</li></ul>
<hr>
<p><b>Project:</b> Mass-tagging
</p><p><b>Brief explanation:</b>
Users sometimes have poorly tagged tracks. Amarok has always lacked an
easy way to download information about tracks from FreeDB or
Musicbrainz and then tag multiple tracks at once.
</p><p><b>Expected Results:</b>
</p>
<ul><li>To bring the functionality of programs like EasyTag or <a href="http://musicbrainz.org/doc/PicardQt" class="external text" title="http://musicbrainz.org/doc/PicardQt" rel="nofollow">PicardQt</a> into Amarok.
</li></ul>
<hr> 
<p><b>Project:</b> Advanced stream saving
</p><p><i><b>Project would mostly have to be implemented at the Phonon
or phonon-backend level or perhaps like Gst or Xine itself, only
trivial code in Amarok.</b></i> Though it would be useful!
</p><p><b>Brief explanation:</b>
Amarok does not offer functionality to save Shoutcast or other streams
while listening. Additionally, many songs or mix sets have an
introductory part before the part that makes one want to save it so a
ring buffer would be a very nice thing to have. It would work like
this:
-User listens to stream, Amarok starts keeping the last -say- one hour
saved to disk, discarding old stream data as new data arrives.
-User wants to save the mixset she is listening to ten minutes into the
mix. She clicks on &quot;save stream&quot; in the menu and now she is offered a
way to choose the beginning of the recording <i>from the past one hour</i>.
After choosing a beginning and a file name Amarok starts saving from
the chosen time, adding new material as it arrives and is being
listened to.
</p><p><b>Expected results:</b>
Be able to save a stream to listen to it again later without the need to record 
everything out of fear of losing the beginning of a great song/mix.
</p>
<a name="Okular"></a>