titunian / Auk

Stream fetcher based on Soundcloud and Echonest APIs
Other
6 stars 0 forks source link

Switching services #3

Open slotlocker2 opened 10 years ago

slotlocker2 commented 10 years ago

As you already know, Soundcloud is more of an indie platform and most of the songs are covers or remixes. I've applied for Grooveshark API keys. The probability of finding a song on Grooveshark is infinitely more than on Soundcloud. Also maybe the requests won't take this long. What do you think?

titunian commented 10 years ago

I've considered that while initially writing the code. Soundcloud being crowd-sourced sounds, the chances of our key access being blocked is next to nothing. To tackle the issues of remixes, I have used the echonest API. When the user inputs the track name and artist, the echonest module returns the duration of the song. It is easy to observe that on soundcloud the duration remixes/covers vary vastly than the original duration. So, I've used the +/- 1 second error in the duration to find the song on SC. So, with the track name, artist name and duration accurate to 1 second, the probability of finding covers/remixes decreases drastically.

slotlocker2 commented 10 years ago

Ah! That is brilliant. But what about the overall speed of the app. As of now it takes good 10 seconds to fetch song info. Grooveshark is also crowdsourced. Imma give it a shot and let you know if it performs better. I am working on seeking. :)

On Wed, Jun 4, 2014 at 6:23 PM, Abhishek Damodara notifications@github.com wrote:

I've considered that while initially writing the code. Soundcloud being crowd-sourced sounds, the chances of our key access being blocked is next to nothing. To tackle the issues of remixes, I have used the echonest API. When the user inputs the track name and artist, the echonest module returns the duration of the song. It is easy to observe that on soundcloud the duration remixes/covers vary vastly than the original duration. So, I've used the +/- 1 second error in the duration to find the song on SC. So, with the track name, artist name and duration accurate to 1 second, the probability of finding covers/remixes decreases drastically.

Reply to this email directly or view it on GitHub https://github.com/effive/Auk/issues/3#issuecomment-45086262.

Phani Kumar, Nothing much to brag about.

titunian commented 10 years ago

Sure! Speed can be improved either by adding event driven functionalities or by creating a dynamic playlist which loads only 3 songs and extrapolates as the user fast forwards, like spotify.

slotlocker2 commented 10 years ago

I LOVE the second idea. Will see how feasible it is once I am done with the code that enables seeking. :)

On Wed, Jun 4, 2014 at 6:49 PM, Abhishek Damodara notifications@github.com wrote:

Sure! Speed can be improved either by adding event driven functionalities or by creating a dynamic playlist which loads only 3 songs and extrapolates as the user fast forwards, like spotify.

Reply to this email directly or view it on GitHub https://github.com/effive/Auk/issues/3#issuecomment-45088856.

Phani Kumar, Nothing much to brag about.

titunian commented 10 years ago

It is quite easy. Laptop running Ubuntu has a broken screen, so I am using my sister's laptop. Will try to port the GUI to Windows and create a executable.

slotlocker2 commented 10 years ago

Cool. Maybe you can also work on a web player. I am uninitiated as far as web tech are concerned.

On Wed, Jun 4, 2014 at 6:53 PM, Abhishek Damodara notifications@github.com wrote:

It is quite easy. Laptop running Ubuntu has a broken screen, so I am using my sister's laptop. Will try to port the GUI to Windows and create a executable.

Reply to this email directly or view it on GitHub https://github.com/effive/Auk/issues/3#issuecomment-45089331.

Phani Kumar, Nothing much to brag about.

titunian commented 10 years ago

Well, I have to quickly refresh my JS then :)

slotlocker2 commented 10 years ago

Porting the app to windows would be straightforward IMHO. Had used py2exe earlier. Bundles all required libs into an exe. Maybe we can get rid of unnecessary imports to reduce the size of the executable. When was the last time I was this excited?

On Wed, Jun 4, 2014 at 6:58 PM, Abhishek Damodara notifications@github.com wrote:

Well, I have to quickly refresh my JS then :)

Reply to this email directly or view it on GitHub https://github.com/effive/Auk/issues/3#issuecomment-45089899.

Phani Kumar, Nothing much to brag about.

titunian commented 10 years ago

Hehe :) I'm on it!

titunian commented 10 years ago

Damn! Windows GSTreamer is 100MB + file. HAve to look for alternatives.

slotlocker2 commented 10 years ago

There are quite a few cross platform audio libraries but I have had no luck getting them to work properly. One of the best libs out there, pyglet does not support remote file streaming. pymedia and pyaudio are more geared towards audio synthesizing.

On Wed, Jun 4, 2014 at 7:27 PM, Abhishek Damodara notifications@github.com wrote:

Damn! Windows GSTreamer is 100MB + file. HAve to look for alternatives.

Reply to this email directly or view it on GitHub https://github.com/effive/Auk/issues/3#issuecomment-45093371.

Phani Kumar, Nothing much to brag about.

titunian commented 10 years ago

I'm trying pyAudio now. Just a new idea, if we can process the request on a central server and queue up the HTTP streams to form a mega radio stream like an internet radio, each stream catering a single user request, users can use their existing audio player to use this. This will take a lot of processing power. But you know, its just an idea :)

slotlocker2 commented 10 years ago

That qualifies as a milestone. Let us see if we can get that up and running. Finish the web player real quick and we can jump to that. Maybe set it up on EC2. :+1: