Hi Irina,
On Wed, Apr 24, 2013 at 5:21 PM, Irina Grosu <[email protected]>wrote:
> Hello RJ,
>
> Thanks for the updates and clarifications. I listed Jamendo because it was
> the first service I managed to work with. Today, I managed to use
> SoundCould’s Rest API to search and download music making GET requests, so
> this will be part of my proposal too.
>
> Going through the code, I've seen that SoundSource doesn’t provide a way
> to stream from an online service. That is why I asked if I’m allowed to
> download the audio file (and also because I didn’t know what to do from a
> legal point of view).
>
Yep, we need obey the terms of the APIs and respect the artist's wishes.
For this reason, when we use an API that only supports streaming (e.g. a
SoundCloud song that is streamable but not downloadable) we must respect
that and not allow a Mixxx user to download the song permanently to their
hard drive. We should only save the file to a temporary location as an
implementation detail and delete the file when Mixxx closes. In the case
that the API allows downloading (for example, a SoundCloud song that has
been marked as downloadable by the artist) then we should allow the user to
permanently download the song to their library since they could just as
easily do the same by going to the SoundCloud page for the song in a web
browser.
> The way that I see my proposal is: the user will be able to make queries
> regardless the cloud service he is using. After the information is
> collected from the user, a request, specific to each service, will be made
> (using its API), and after a response is received (XML or JSON) it is
> parsed. After this, the relevant information (artist name, track name,
> download url, etc.) will be delivered to the user. This information
> delivered to the user should be the same for each service. In this way, a
> new cloud service will only need to implement how to make a request with
> its API using the information provided by the user, and how to parse the
> response in order to give the user the response in the desired format.
>
Sounds good to me.
> I was thinking that it will be useful for the user to also have the
> possibility to download music from his personal cloud storage (for example
> Google Drive). This would imply an additional authentication module, but
> besides this, the searching and retrieving information mechanism will be
> the same as for a cloud service like SoundCloud. What do you think about
> this?
>
Yep -- each individual module will need to optionally support a UI for
authentication. Maybe this is best done in the preferences when you enable
a particular module? For example, the Spotify API is only available to
premium subscribers so they will need to enter their credentials.
> I’m working at my proposal as we speak and I’ll let you know when a first
> version will be available.
>
> Looking forward to it -- best regards,
RJ
> Thank you,
>
> Irina
>
>
> On Wed, Apr 24, 2013 at 11:10 PM, RJ Ryan <[email protected]> wrote:
>
>> Hey Irina,
>>
>> I just wrote some updates to the project description -- please take a
>> look:
>>
>> http://www.mixxx.org/wiki/doku.php/gsoc2013ideas?&#cloud_library_support_soundcloud_spotify_etc
>>
>> I've written some comments inline:
>>
>> On Mon, Apr 22, 2013 at 9:56 AM, Irina Grosu <[email protected]>wrote:
>>
>>> Hello,
>>>
>>> I have a question regarding the Streaming Services Support GSoC idea. It
>>> is wanted to stream directly from the web or the audio file can be
>>> downloaded to the computer?
>>>
>>> For example, using Jamendo’s Rest API, I’m allowed to search files and
>>> retrieve information in the JSON format. I’m able to parse the result and
>>> retrieve the Url of the resource (besides other information). Using that
>>> Url I’m able to receive its content over the network. Now, I don’t know if
>>> I can save the file to the computer, and pass to the Mixxx classes the file
>>> location and use it as a normal file, or I should only store the content as
>>> a temporary object (I could use QTemporaryObject). If the file would be
>>> permanently saved to the computer, the user will be allowed to play the
>>> file everytime he wants, and will not need to make another query to Jamendo.
>>>
>>> Jamendo’s license says that the music can be downloaded as long it is
>>> for non-commercial use.
>>>
>>
>> I know the original description listed Jamendo but please don't make it
>> the focus of your proposal. It is free culture music but the impact of
>> including a service like that is pretty low while there is potentially huge
>> benefit to going for something like SoundCloud.
>>
>> I've updated the original description to include some details on the
>> issue of streaming or downloading the whole file -- as you may have
>> discovered Mixxx does not support SoundSource's that do not know their
>> length. This poses a problem for streams. You only need to deal with
>> downloading the file in V1 but should leave room in your design such that
>> we could transition to streaming in the future. If you end up with free
>> time at the end of the summer you could begin working on the changes
>> required to support a streaming SoundSource.
>>
>>
>>> What method do you think I should follow in my proposal?
>>>
>>> Thank you,
>>>
>>> Irina
>>>
>>> On Thu, Apr 18, 2013 at 11:34 PM, Irina Grosu
>>> <[email protected]>wrote:
>>>
>>>> Hello,
>>>>
>>>> My name is Irina Grosu and I'm a first year Master student at the
>>>> Faculty of Computer Science from Iasi, Romania. I’m interested in the
>>>> “Streaming Services Support” GSoC project idea.
>>>>
>>>> I have already contacted RJ this week, but I wanted to introduce myself
>>>> here, also. I took this week to get used to Mixxx and, as I learned more
>>>> about it, I’ve become more interested and excited about collaborating with
>>>> your organization.
>>>>
>>>> Last year, I was a GSoC student, working for The Outercurve Foundation
>>>> and it was a great experience for me, from which I learned a lot. I was
>>>> also happy that I was able to put my skills and knowledge into practice,
>>>> working on something that it is used worldwide. If you want to find out
>>>> more about the project that I worked on last year at GSoC, and about my
>>>> professional experience, feel free to visit my website:
>>>> http://students.info.uaic.ro/~irina.grosu
>>>>
>>>> As I have previously mentioned, I’m interested in the Streaming
>>>> Services Support idea. It is my understanding that this project must
>>>> consist in a modular system that will make it easy for developers to add
>>>> new API support for streaming services.
>>>>
>>>> I was thinking that it would be interesting to also stream radio,
>>>> besides music tracks. As a start, I could provide the user with the
>>>> possibility to enter the URL of a radio stream and listen to it. Also, he
>>>> would have the possibility to choose from the channels provided by popular
>>>> streaming sites. I think that SomaFM could be a good fit, and I was able to
>>>> retrieve information about the provided channels using this xml file:
>>>> http://somafm.com/channels.xml. Another streaming media server worth
>>>> considering is Icecast.
>>>>
>>>
>> I think this isn't a good fit for Mixxx -- primarily Mixxx is for live DJ
>> performances, so listening to radio streams isn't really within the scope
>> of the project. Also, as I mentioned before there are serous architectural
>> issues in Mixxx that prevent you from making a streaming SoundSource so I
>> don't think this would work anyway until we solve those issues.
>>
>>
>>
>>> Another nice functionality would be the possibility to search music
>>>> over two important sites: Jamendo and Last.fm. I could use multiple search
>>>> criteria and retrieve the requested information using the REST API,
>>>> provided by both mentioned streaming services.
>>>>
>>>
>> The way I envision the project search is the primary interface to the
>> cloud library providers. There's no reason to limit it to just one or two
>> sites though -- it should support searching over all the enabled cloud
>> library backends.
>>
>>
>>> Please let me know your thoughts on these ideas. Could this be a
>>>> start for my proposal? I would appreciate it if you pointed me in the right
>>>> direction.
>>>>
>>>
>> With the exception of the few clarifications I made above you seem to be
>> on the right track -- feel free to write back with any questions and we
>> look forward to reading your application.
>>
>> Best regards,
>> RJ
>>
>>
>>
>>> Thank you,
>>>>
>>>> Irina
>>>>
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Precog is a next-generation analytics platform capable of advanced
>>> analytics on semi-structured data. The platform includes APIs for
>>> building
>>> apps and a phenomenal toolset for data science. Developers can use
>>> our toolset for easy data analysis & visualization. Get a free account!
>>> http://www2.precog.com/precogplatform/slashdotnewsletter
>>> _______________________________________________
>>> Get Mixxx, the #1 Free MP3 DJ Mixing software Today
>>> http://mixxx.org
>>>
>>>
>>> Mixxx-devel mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>>>
>>
>>
>
------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr
_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel