Hello and proposal/brainstorming for SoundCloud service

Be be.0 at gmx.com
Thu Dec 11 01:51:54 UTC 2014


Hi Amarok developers, what's up? I don't see much recent activity in the
archives of this list, on the website, blogs, or the wiki. What are the
future plans for Amarok? I am interested in getting involved, primarily
to make Amarok an awesome SoundCloud client.

I started working on a QtScript service plugin to stream from SoundCloud
(attached), but it seems that Amarok's QtScript API will not be enough
to really make use of SoundCloud's features. Is it possible to add to
Amarok's GUI outside of populating the collection pane or putting simple
HTML in the the info or lyrics applets with QtScript? I initially was
thinking of trying to do an ugly hack of using the info applet or a
lyric script to display information from SoundCloud and links to like a
track, comment, follow an artist, and other functions. However, I do not
see a way to do that without opening a separate browser, which kinda
defeats the point of the Amarok service.
 
So it seems that this service would have to be written in C++ to really
make it awesome or a lot of work would have to be done to extend the API
exposed to QtScript. Amarok already has places in its GUI that it would
make sense to integrate SoundCloud functions. Comments could be
displayed along the play bar like bookmarks, analogous to how they are
displayed on the waveform on SoundCloud's web interface. Adding a
comment would be done like adding a bookmark to a track in the local
collection. Perhaps the interface for this could be reused to create an
annotation feature for bookmarks in the local collection. Liking tracks,
following artists, showing who an artist follows, sharing
tracks/playlists to the users' stream or a group, and maybe more
functions could be invoked by pressing buttons added to the Current
Track applet when a track from SoundCloud is playing.

As for the collections pane, this could be structured like:
Users
-User list generated from search terms, with thumbnails of user's avatars
--Playlists
---Playlists with album art and year
----track list in order of playlist
---Other tracks, using user's avatar as thumbnail
----track list
--All tracks
---track list
--Likes
---track list
--Shares
---track list
--Following
---user list
--Groups
---group list
-Own account
--Same as above, plus:
--Personal stream
---track list
Tracks
-Track list generated from search terms
Groups
-Group list generated from search terms
--Tracks
---Track list
--Members
---User list
--Contributors
---User list
--Moderators
---User list

What would make this service awesome (and another feature that does not
seem possible via QtScript) and really take advantage of SoundCloud's
social features is that the hierarchy would be interlinking. Double
clicking a user or group anywhere in the hierarchy would load that
user/group in the user/group list at the second level of the hierarchy.
For example, when viewing who User A follows, double clicking on User B
in that list would load User B's information, displayed at the same
level of the hierarchy as User A with all the elements (playlists,
tracks, likes, following, groups) shown for any user.

What will make this a challenge for me is that I do not know C++ or Qt
yet. I have some programming experience with Python, Bash, and
EMCAScript. I think writing this SoundCloud service could be a fun and
useful way to learn C++ and Qt (which I also want to learn to contribute
to Mixxx).

Suggestions welcome! :)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: soundcloud_service.tar.xz
Type: application/x-xz
Size: 14296 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/amarok-devel/attachments/20141210/1e2cc71b/attachment.bin>


More information about the Amarok-devel mailing list